home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / SYS / s / REXX.lha / Renumber.wrx < prev    next >
Text File  |  1995-07-20  |  3KB  |  143 lines

  1. /*
  2.  * REXX-Script für WRITE 4.97 © 1994 by Tim Teulings
  3.  *
  4.  * Dieses Script wird aus WRITE heraus gestartet.
  5.  * Es dient dazu lange Spalten von Zahlen umzunummerrieren.
  6.  * Man startet dieses Script mit dem Cursor auf der Zahl von der man aus
  7.  * umnummerieren möchte.
  8.  * WRITE nummeriert dann in 1er Schritten aufwärts, bis er keine Zahl mehr
  9.  * findet.
  10.  * Er beachtet dabei die aktuelle Formatierung.
  11.  *
  12.  * $VER: Renumber.wrx 1.1
  13.  *
  14.  * History:
  15.  *
  16.  * 1.1 added versionstring [TT]
  17.  * 1.0 initial Vesion      [TT]
  18.  *
  19.  */
  20.  
  21. IF ~show('P',"WRITE")
  22. THEN DO
  23.   say "Dieses Script ist zutzlos ohne WRITE!"
  24.   EXIT
  25. END
  26.  
  27. ADDRESS WRITE
  28.  
  29. OPTIONS RESULTS
  30.  
  31. 'VERSIONCHECK 40000 "Renumber.wrx"'
  32. IF RC~=0 THEN DO
  33.   exit 10
  34. END
  35.  
  36. 'GETVAR "_CurrentID"'
  37. ID = RESULT
  38. IF ID=0 THEN DO
  39.   'MESSAGEOK "REXX-Script\n'Renumber.wrx' :\n\nSie müssen dieses Script\naus WRITE heraus starten!"'
  40.   EXIT
  41. END
  42.  
  43. OPENPORT ID           /* PrivatePort des aktuellen Fensters öffnen        */
  44. Port = RESULT
  45.  
  46. IF Port="" THEN DO    /* 'OPENPORT' gibt "" zurück, wenn Port nicht       */
  47.                       /* geöffnet werden konnte                           */
  48.  
  49.   LOCKWINDOW ID
  50. END
  51. ELSE DO
  52.   INTERPRET ADDRESS Port  /* PrivatePort addressieren.Alle Komandos beziehen */
  53.                           /* sich nun auf das Fenster mit diesem Port        */
  54. END
  55.  
  56. 'GETVAR "_WordDef"'     /* Wortdefinition 1 */
  57. OldWordDef = RESULT
  58. 'SETVAR "_WordDef" 1'
  59.  
  60. 'GETVAR "_CurrentWord"' /* Aktuelles Wort holen */
  61. Word = RESULT
  62.  
  63. IF ~DATATYPE(Word,'Numeric') THEN DO
  64.   'MESSAGEOK "REXX-Script Renumber.wrx :\n\nDer Cursor muß auf\neiner Zahl stehen!"'
  65.   Quit()
  66. END
  67.  
  68. SILENT                  /* Zwecks Geschwindigkeit in den Silent-Mode */
  69.                         /* schalten                                  */
  70.  
  71. 'GETVAR "_xPos"'        /* Cursorposition holen */
  72. OldPos.x = RESULT
  73. 'GETVAR "_yPos"'
  74. OldPos.y = RESULT
  75.  
  76. 'GETVAR "_CurrentChar"' /* Aktuelles Zeichen holen */
  77. Char = RESULT
  78.  
  79. DO WHILE DATATYPE(Char,'Numeric') /* Rechten Rand der Zahl suchen */
  80.   CURSORRIGHT 0
  81.   'GETVAR "_CurrentChar"'
  82.   Char = RESULT
  83. END
  84. CURSORLEFT 0
  85.  
  86. 'GETVAR "_xPos"'        /* Wieder aktuelle Cursorposition holen */
  87. StartPos.x = RESULT
  88. 'GETVAR "_yPos"'
  89. StartPos.y = RESULT
  90.  
  91. MaxLen = 0
  92. Lines  = 0
  93. 'GETVAR "_CurrentWord"'
  94. Word = RESULT
  95. DO WHILE DATATYPE(Word,'Numeric')
  96.   Lines = Lines + 1
  97.   Len = Length(Word)
  98.   IF Len>MaxLen THEN DO
  99.     MaxLen = Len
  100.   END
  101.   CURSORDOWN 0
  102.   'GETVAR "_CurrentWord"'
  103.   Word = RESULT
  104. END
  105.  
  106. GOTO StartPos.x StartPos.y
  107. 'GETVAR "_CurrentWord"'
  108. Count = RESULT + 1
  109.  
  110. DO r = 1 TO Lines-1
  111.   CURSORDOWN 0
  112.  
  113.   GOTO StartPos.x-MaxLen+1 _yPos
  114.  
  115.   DO q = 1 TO MaxLen
  116.     DELETE
  117.   END
  118.  
  119.   ZahlLen = Length(Count)
  120.   GOTO StartPos.x-MaxLen+1 _yPos
  121.   DO q = 1 TO MaxLen-ZahlLen
  122.     'WRITETEXT " "'
  123.   END
  124.   WRITETEXT "(" || Count || ")"
  125.   Count = Count + 1
  126. END
  127.  
  128. GOTO OldPos.x OldPos.y
  129.  
  130. Quit()
  131.  
  132. Quit:
  133.  
  134. 'SETVAR "_WordDef"' OldWordDef /* Alten Wert setzen       */
  135. WINDOW 0 0 0 0                 /* Silent-Mode ausschalten */
  136. IF Port="" THEN DO
  137.   LOCKWINDOW 0
  138. END
  139. ELSE DO
  140.   CLOSEPORT ID
  141. END
  142. EXIT
  143.